package com.dgy.project.service;

import java.util.List;
import com.dgy.project.domain.ProjectApplyAudit;
import com.dgy.project.pojo.dto.AssignExpertDTO;
import com.dgy.project.pojo.dto.ProjectApplyListDTO;
import com.dgy.project.pojo.dto.ProjectAuditListDTO;
import com.dgy.project.pojo.vo.ProjectApplyListVO;
import com.dgy.project.pojo.vo.ProjectAuditListVO;

/**
 * 项目专家评审Service接口
 *
 * @author ccc
 * @date 2025-04-01
 */
public interface IProjectApplyAuditService
{
    /**
     * 查询项目专家评审
     *
     * @param reviewId 项目专家评审主键
     * @return 项目专家评审
     */
    public ProjectApplyAudit selectProjectApplyAuditByReviewId(Long reviewId);

    /**
     * 查询项目专家评审列表
     *
     * @param projectApplyAudit 项目专家评审
     * @return 项目专家评审集合
     */
    public List<ProjectApplyAudit> selectProjectApplyAuditList(ProjectApplyAudit projectApplyAudit);

    /**
     * 新增项目专家评审
     *
     * @param projectApplyAudit 项目专家评审
     * @return 结果
     */
    public int insertProjectApplyAudit(ProjectApplyAudit projectApplyAudit);

    /**
     * 项目指派专家
     *
     * @param assignExpertDTO 项目专家评审
     * @return 结果
     */
    public int assignExpert(AssignExpertDTO assignExpertDTO);

    /**
     * 修改项目专家评审
     *
     * @param projectApplyAudit 项目专家评审
     * @return 结果
     */
    public int updateProjectApplyAudit(ProjectApplyAudit projectApplyAudit);

    /**
     * 批量删除项目专家评审
     *
     * @param reviewIds 需要删除的项目专家评审主键集合
     * @return 结果
     */
    public int deleteProjectApplyAuditByReviewIds(Long[] reviewIds);

    /**
     * 删除项目专家评审信息
     *
     * @param reviewId 项目专家评审主键
     * @return 结果
     */
    public int deleteProjectApplyAuditByReviewId(Long reviewId);

    /**
     * 查询项目专家评审列表
     *
     * @param projectAuditListDTO
     * @return 项目专家评审集合
     */
    public List<ProjectAuditListVO> selectMyAuditList(ProjectAuditListDTO projectAuditListDTO);

}
